import java.util.*;
import java.util.stream.Collectors;

public class Task {

    public static void main(String[] args) {

        List<Student> students = new ArrayList<>();
        Student s1 = new Student("蜘蛛精", 26, 172.5);
        Student s2 = new Student("蜘蛛精", 26, 172.5);
        Student s3 = new Student("紫霞", 23, 167.6);
        Student s4 = new Student("白晶晶", 25, 169.0);
        Student s5 = new Student("牛魔王", 35, 183.3);
        Student s6 = new Student("牛夫人", 34, 168.5);
        Collections.addAll(students, s1, s2, s3, s4, s5, s6);
        
        // 需求1：请计算出身高超过168的学生有几人。
        long size = getCount(students);
        System.out.println(size);

        // 需求2：请找出身高最高的学生对象
        Student s = getHighest(students);
        System.out.println(s);

        // 需求3：请找出身高最矮的学生对象。
        Student ss = getLowest(students);
        System.out.println(ss);

        // 需求4：请找出身高超过170的学生对象，并放到一个新的List集合中去返回。
        // 流只能收集一次。
        List<Student> students1 = filterToList(students);
        System.out.println(students1);

        // 需求5：请找出身高超过170的学生对象，并放到一个新的Set集合中去返回。
        Set<Student> students2 = filterToSet(students);
        System.out.println(students2);

        // 需求6：请找出身高超过170的学生对象，并把学生对象的名字和身高，存入到一个Map集合返回。
        Map<String, Double> map = filterToMap(students);
        System.out.println(map);

        // 需求7：请找出身高超过170的学生对象，把结果存到一个数组中返回
        Student[] arr = filterToArray(students);
        System.out.println(Arrays.toString(arr));
        
        // 需求8：请找出身高超过170的学生对象
        // 把所有姓名用|分隔符拼接成一个字符串后返回，左右两边加上中括号[]。
        String names = filterToString(students);
        System.out.println(names);
    }

    public static String filterToString(List<Student> students) {
        return null;
    }

    public static Student[] filterToArray(List<Student> students) {
        return null;
    }

    public static Map<String, Double> filterToMap(List<Student> students) {
        return null;
    }

    public static Set<Student> filterToSet(List<Student> students) {
        return null;
    }

    public static List<Student> filterToList(List<Student> students) {
        return null;
    }

    public static Student getLowest(List<Student> students) {
        return null;
    }

    public static Student getHighest(List<Student> students) {
        return null;
    }

    public static long getCount(List<Student> students) {
        return null;
    }

}